package com.example.exception;

import com.example.common.Result;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;


// 指定该类作为全局异常处理器，适用于org.example.controller包下的所有控制器
@ControllerAdvice("org.example.controller")
public class GlobalException {

    // 标记该方法为异常处理方法，处理所有类型的异常
    @ExceptionHandler(Exception.class)
    // 表示该方法返回的数据直接写入HTTP response body中，通常用于返回JSON数据
    @ResponseBody
    public Result error(Exception e){
//        log.error("异常信息", e);
//        log.error("异常信息", e);
        return Result.error();

    }

//    自定义异常
    @ExceptionHandler(CustomException.class)
    @ResponseBody
   public Result error(CustomException e){
//        log.error("异常信息", e);
        return Result.error(e.getCode(), e.getMsg());
    }
}